package com.nf.mvc.support;

import com.nf.mvc.argument.RequestParam;

/**
 * 这是一个全局的常量类，主要放置的是一些多个类型都可能用到的常量。
 * <p>如果常量只在某个类型中使用，就在那个类型里直接定义，不要放置在这里</p>
 * <p>此全局常量类把杂项常量以常量字段形式直接放置在类里，其它分类的常量就以内部静态类的形式进行管理，比如这里的{@link Date},
 * 通常会以枚举与静态内部类的技术手段来实现这些子分类常量</p>
 * <p>
 * 可以阅读学习这两篇关于常量的文章<a href="https://blog.csdn.net/qq_36435294/article/details/110237856">常量类的常见实现方式</a>
 * <a href="https://www.baeldung.com/java-constants-good-practices">java-constants-good-practices</a>
 */
public abstract class Constants {
    /**
     * 这个值没有意义，就是搞一个基本不可能被用户指定的值，以便确定用户的确是指定了值,见{@link RequestParam},
     * 也通过设定这个常量值，也尽量的避免了不设置值时产生的一些空引用异常或者默认值不适合设置为null,""等特殊情况
     */
    public static final String DEFAULT_NONE = "\n\t\t\n\t\t\n\uE000\uE001\uE002\n\t\t\t\t\n";

    public static class Date {
        public static final String DATE_PATTERN = "yyyy-MM-dd";
        public static final String TIME_PATTERN = "HH:mm:ss";
        public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
    }
}
